# qos 实践 ```bash iptables -t mangle -A FORWARD -m dscp --dscp 36 -o eth0 -j CLASSIFY --set-class 100:0 iptables -t mangle -A OUTPUT -m dscp --dscp 36 -o eth0 -j CLASSIFY --set-class 100:0 tc qdisc add dev eth0 root handle 1: nssprio bands 2 tc qdisc add dev eth0 parent 1:1 handle 10: nsstbl rate 10Mbit burst 30K tc qdisc add dev eth0 parent 1:2 handle 20: nsstbl rate 1000Mbit burst 30K tc qdisc add dev eth0 parent 10: handle 100: nsspfifo limit 100 tc qdisc add dev eth0 parent 20: handle 200: nsspfifo limit 100 set_default echo 1>/sys/kernel/debug/ecm/ecm_classifier_default/accel_delay_pkts #方案1 rmmod ifb && insmod ifb numifbs=5 tc qdisc add dev eth0 handle ffff: ingress /etc/init.d/qca-nss-mirred start tc filter add dev eth0 parent ffff: u32 match u32 0 0 action nssmirred redirect dev ifb0 fromdev eth0 ifconfig ifb0 down ifconfig ifb0 up tc qdisc add dev ifb0 root handle 1: nsshtb accel_mode 0 tc class add dev ifb0 parent 1: classid 1:1 nsshtb crate 400Mbit cburst 160k tc class add dev ifb0 parent 1:1 classid 1:2 nsshtb rate 40Mbit burst 10k crate 100Mbit cburst 20k priority 0 tc class add dev ifb0 parent 1:1 classid 1:3 nsshtb rate 40Mbit burst 10k crate 100Mbit cburst 20k priority 0 tc class add dev ifb0 parent 1:1 classid 1:4 nsshtb rate 40Mbit burst 10k crate 100Mbit cburst 20k priority 0 tc qdisc add dev ifb0 parent 1:2 handle 100: nsspfifo limit 10 set_default tc qdisc add dev ifb0 parent 1:3 handle 200: nsspfifo limit 10 tc qdisc add dev ifb0 parent 1:4 handle 300: nsspfifo limit 10 tc filter add dev ifb0 parent 1: protocol ip u32 match ip src 192.168.1.200 flowid 200:0 #方案2 rmmod ifb && insmod ifb numifbs=5 tc qdisc add dev eth0 handle ffff: ingress /etc/init.d/qca-nss-mirred start tc filter add dev eth0 parent ffff: u32 match u32 0 0 action nssmirred redirect dev ifb0 fromdev eth0 ifconfig ifb0 down ifconfig ifb0 up tc qdisc add dev ifb0 root handle 1: nsshtb accel_mode 0 tc class add dev ifb0 parent 1: classid 1:1 nsshtb rate 0Mbit burst 100k crate 1000Mbit cburst 100k tc class add dev ifb0 parent 1:1 classid 1:10 nsshtb rate 10Mbit crate 20Mbit burst 100k cburst 100k priority 0 tc class add dev ifb0 parent 1:1 classid 1:20 nsshtb rate 4Mbit crate 8Mbit burst 100k cburst 100k priority 1 tc class add dev ifb0 parent 1:1 classid 1:30 nsshtb rate 0Mbit crate 1000Mbit burst 100k cburst 100k priority 2 tc class add dev ifb0 parent 1:1 classid 1:40 nsshtb rate 0Mbit crate 1000Mbit burst 100k cburst 100k priority 3 tc qdisc add dev ifb0 parent 1:10 handle 100: nsspfifo limit 100 tc qdisc add dev ifb0 parent 1:20 handle 200: nsspfifo limit 100 tc qdisc add dev ifb0 parent 1:30 handle 300: nsspfifo limit 100 set_default tc qdisc add dev ifb0 parent 1:40 handle 400: nsspfifo limit 100 tc filter add dev ifb0 parent 1: protocol ip u32 match ip src 192.168.1.200 flowid 400:0 tc filter add dev ifb0 parent 1: protocol ip u32 match u16 0x4590 0xffff at 0 flowid 100:0 # 发送10m tc filter add dev ifb0 parent 1: protocol ip u32 match u16 0x45b8 0xffff at 0 flowid 400:0 # 发送 150m tc filter add dev ifb0 parent 1: protocol ip u32 match u16 0x4590 0xffff at 0 flowid 100:0 tc filter add dev ifb0 parent 1: protocol ip u32 match u16 5001 0xffff at 22 flowid 100:0 tc filter add dev ifb0 parent 1: protocol ip u32 match u16 5002 0xffff at 22 flowid 400:0 #方案3 rmmod ifb && insmod ifb numifbs=5 ifconfig ifb0 down ifconfig ifb0 up /etc/init.d/qca-nss-mirred start tc qdisc add dev ath2 handle ffff: ingress tc filter add dev ath2 parent ffff: u32 match u32 0 0 action nssmirred redirect dev ifb0 fromdev ath2 tc qdisc add dev ifb0 root handle 1: nsshtb accel_mode 0 tc class add dev ifb0 parent 1: classid 1:1 nsshtb rate 0Mbit burst 100k crate 1000Mbit cburst 100k tc class add dev ifb0 parent 1:1 classid 1:10 nsshtb rate 20Mbit crate 200Mbit burst 100k cburst 100k priority 0 tc class add dev ifb0 parent 1:1 classid 1:20 nsshtb rate 4Mbit crate 8Mbit burst 100k cburst 100k priority 1 tc class add dev ifb0 parent 1:1 classid 1:30 nsshtb rate 0Mbit crate 1000Mbit burst 100k cburst 100k priority 2 tc class add dev ifb0 parent 1:1 classid 1:40 nsshtb rate 0Mbit crate 1000Mbit burst 100k cburst 100k priority 3 tc qdisc add dev ifb0 parent 1:10 handle 100: nsspfifo limit 100 tc qdisc add dev ifb0 parent 1:20 handle 200: nsspfifo limit 100 tc qdisc add dev ifb0 parent 1:30 handle 300: nsspfifo limit 100 set_default tc qdisc add dev ifb0 parent 1:40 handle 400: nsspfifo limit 100 tc filter add dev ifb0 parent 1: protocol ip u32 match ip src 192.168.1.88 flowid 100:0 tc filter add dev ifb0 parent 1: protocol ip u32 match u16 0x4590 0xffff at 0 flowid 100:0 # 发送10m tc filter add dev ifb0 parent 1: protocol ip u32 match u16 0x45b8 0xffff at 0 flowid 400:0 # 发送 150m ```